package com.glela.platform.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.glela.platform.model.CUserPointTransaction;
import com.glela.platform.vo.ParamsUserXzbTransactionVo;
import com.glela.platform.vo.XzbTransactionUpdateVo;

public interface CUserPointTransactionMapper {
//    int deleteByPrimaryKey(Long id);
	/**
	 * <dl>
	 * <dt>查询妆币事务记录</dt>
	 * </dl>
	 * @param params_user_xzb_transaction
	 * @return List<CUserPointTransaction>
	 * @author zls
	 * @date 2017年9月5日 下午7:19:23
	 */
	List<CUserPointTransaction> selectByBussinessTypes(ParamsUserXzbTransactionVo params_user_xzb_transaction);

    int insert(CUserPointTransaction record);

    int insertSelective(CUserPointTransaction record);

    CUserPointTransaction selectByPrimaryKey(Long id);
    
    /** 根据源ID和账务类型查找 
	 * @author gaoweiqi
	 * @date 2017年8月23日 12:44:05
	 */
    CUserPointTransaction selectBySourceIDAndBusinessType(@Param("sourceID") Long sourceID,@Param("BusinessType") int BusinessType);

    int updateByPrimaryKeySelective(CUserPointTransaction record);

    /** 更新对应积分事务为已处理
  	 * @author gaoweiqi
  	 * @date 2017年8月23日 12:44:05
  	 */
    int updateResultByPrimaryKey(Long ID);

    int updateByPrimaryKey(CUserPointTransaction record);

    /** 禁用对应积分事务(只处理账务类型是12的(消费送妆币))
  	 * @author gaoweiqi
  	 * @date 2017年8月23日 12:44:05
  	 */
	int updateUserPointStatusByOrderDetailId(Long orderDetailId);
	
	/** gwq **/
	/**
	 * 禁用对应积分事务(只取消账务类型是 消费送积分的)
	 * @param id
	 * @return
	 */
	int updatePointStatusByOrderdetailId(Long orderDetailId);

	/**
	 * <dl>
	 * <dt>查询未处理积分信息(仅查找账务类型是 12 {消费送积分})</dt>
	 * </dl>
	 * @param orderObjectIDList
	 * @return List<CUserPointTransaction>
	 * @author gaoweiqi
	 */
	List<CUserPointTransaction> selectInOrderObjectIdForPointTransaction(List<Long> orderObjectIDList);

	/**
	 * <dl>
	 * <dt>根据ID批量处理积分事务</dt>
	 * </dl>
	 * @param orderObjectIDList
	 * @return List<CUserPointTransaction>
	 * @author gaoweiqi
	 */
	int updateCommisionResultInId(
			List<CUserPointTransaction> pointTransactionList);

	/**
	 * <dl>
	 * <dt>批量保存积分事务</dt>
	 * </dl>
	 * @param PointTransactionList
	 * @return int
	 * @author gaoweiqi
	 */
	int batchInsertPointTransaction(List<CUserPointTransaction> PointTransactionList);

	/**
	 * <dl><dt>批量更新</dt></dl>
	 * @param updateXzbTransactionList
	 * @return int
	 * @author zls
	 * @date 2017年9月6日 上午11:02:34
	 */
	int batchUpdateStatus(List<XzbTransactionUpdateVo> updateXzbTransactionList);
	/**
	 * <dl>
	 * <dt>查询未处理积分信息(仅查找账务类型是 12 {消费送积分})</dt>
	 * </dl>
	 * @param orderDetailId
	 * @return List<CUserPointTransaction>
	 * @author gaoweiqi
	 */
	List<CUserPointTransaction> selectByOrderDetailID(@Param("orderDetailId")Long orderDetailId);
	/**
	 * <dl>
	 * <dt>查询已处理积分信息(仅查找账务类型是 12 {消费送积分})</dt>
	 * </dl>
	 * @param orderDetailId
	 * @return List<CUserPointTransaction>
	 * @author gaoweiqi
	 */
	List<CUserPointTransaction> selectdoneBusinessByDetailID(@Param("orderDetailId")Long orderDetailId);

	List<CUserPointTransaction> selectfreightByBussinessTypesAndsourcesID(
			@Param("typeID")int typeID,@Param("sourceID") Long sourceID);
	
}